Instruction processing unit for program branches



Dec. 24, 1968 D. W. ANDERSON ETAL INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept 21. 1966 116 Sheets-Sheet 1 FIG.1 MAIN STORAGE 04 EXTENDED MAIIN STORAGE 1 l I I I I l CPU smas MPXR SELECTOR SELECTOR SELECTOR SELECTOR WNW cm SELR SELR CHANNEL CHANNEL CHANNEL CHANNEL OPERATORS SUB sue CONSOLE cm cum 124 TAPE TAPE DRUM 0mm m9 (PRINTER W W W W cu J 128 CU EPMTER us 120 125 SVHTCHM DRUM um mm 10 UNIT STORE STORE 52/ CELL CARD 130 REED/PUNCH m i f SHARED FlLE m r 109 0% 'E E L F CHANNEL 1 urms SYSTEM ms PRINTER 1o9 CONNECTION cu PRINTER g gigi W cm mus DISPLAY msmv READ/PUNCH cu umrs un 113 MANUAL DISPLAY \\H6 p m I 0 UNITS 109 jcu PRINTER "gala/4L ,NVENTDRS DAVID w. ANDERSON 108 cm J. conn 113 mums J, SPARACIO READ/PUNCH ROBERT M. romsum BY 19M c. we.

ATTORNEY Dec. 24, 1968 INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21. 1966 D W. ANDERSON ETAL 116 Sheets-Sheet 2 FIG. 2

[ 404 i mun E STORAGE '5 P PSCE u f1 uunf MSCE SPF If y] X l L 438 1 436 43B 1 i MAIN STORAGE L MAINT 439 cousou OPERATORS CONSOLE T0 I/O UNITS SPF 11$ Sheets-Sheet :5

P SCE EXTENDED MAIN STORAGE E BOX FIXED POINT (FXPU) D. W. ANDERSON ETAL To 1 4 4 0D HSCE MAIN STORAGE I BOX F I G. 3

Dec. 24, 1968 Fzled Sept 21.

FLOATING POINT (FLPU) T0 SELECTOR CHANNEL 122 DB1 CL28 CONSOLE Dec. 24, 1968 o w. ANDERSON ETAL 3,418,633

INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21. 1966 116 Sheets-Sheet 4 467 (24 BITS) Dec. 24, 1968 D. W. ANDERSON ETAL INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed ep 21 1966 11s Sheets-Sheet 5 I I I FROM s a BUS A. T- I I64 465 FROM GPR BUS B f I IE I l m I Ji I Im /II2 I I SELECT SELECT I m I I RIJA nun a5s\ ADDER I68 F L B M FROM I II+L% I I 2 I I I m v- RUM w REG R MPH I I Q FEW -*I:* I

m 1 T0 GPR; I 3 :J-G I I TO MAIN STORAGE I I I I I I133 i I I F I i] SIT I80 I r: T I I3 E I I I I :I E I 535 I FROM FXPU I43 I I -E I 5 F 502 -I FROM FLPUNILZH I g I I -S E I I I COUNT COUNT I II J I I I I E E B E I I i B I I 968 0. w. ANDERSON ETAL 3,413,633

INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES 116 Sheets-Sheet 6 Filed Sept 21. 1966 :5: a; 2/ :3: 2: E; 252. E E; a: 3 5 RE T 5:8 2 x x m m :5 a; TT 11 5:3 2 m E53 2 32:23 mm. a; m: 2?! is: Z W E J m mom IUI 5 :2 zczaoo sari. 8: a;

.5 m H :2: xom H :2:

Dec. 24, 1968 o. w. ANDERSON ETAL 3,418,533

INSTRUCTION PROCESSING UNIT FOR rnoenm BRANCHES Filed Sept. 21, 1966 116 Sheets-Sheet 7 FIG. 6A

FROM FLPU 142{ 210 FF L FE F0 F6 I F8 I H I zos 201 206 II I I I I I I 204 OR BOX E 257 4oa I T I G a 344 I 345 ova IBOX DECODE ,412 234 V505 222 1 21s 1168 as 20 OF 451 4 1 A") 252 J \1STACK am mags 2 REG REG I 2 I 233 5 501 T mPscEm a T0 PM 137 R00 BUS um OF I ,--fl ER 1169 505 mm 23e L -lmom I BOX T 212 22s 0 1 FROM I BOX 2 s 5 /2o2 22a I LOAD mom 0P 9 DECOOE 224 2 s49 44 15 343 W 22s DECREHENT 1 354 Dec. 24, 1968 3, w ANDERSON ETAL 3,418,638

INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21. 1966 116 Sheets-Sheet 8 FIG. 6B 0005 ABUS 472 235 1 CAND 00155 I 1 400 504 442 01 1 fifi I [ov5114's 050005] LEADING MR 500 F191 221 371 0035x555 m STORE 220 51115150 f DATA 011555115 244 $1 111 32 POSITIONS 1a2 FORGE 0515011011 LEFHRRWHT 05011111 $1011 Dec. 24, 1968 o. w. ANDERSON ETAL 3,413,633

INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21, 1966 116 Sheets-Sheet 10 I IPXR CIINL F l G 9 BU S C ONTROL CPU can

EMS

IREQ BUS LA BUS usce I 000 mrrcg PRIORITY CTRL QUEUE CTRL STACK CCC INTFCE HIJUSE- KEEPING QUEUE AER) IIIARK I EMS m 1 SAS sso EMS in I Dec. 24, 1968 D. W. ANDERSON ETAL INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES med 1966 11s Sheets-Sheet 11 288 A 222 SET 289 FIG. '0

293 =CANCEL RESETL ACTIVATE /EMPTY 301 7 F 0 1a 201 8 OPCODE comm 29r 298 1/ SET CLK A 0 OP I move I 285 READX I H LJ R ET FXOS ES Cc courn m VALID 7- A RESET 284 c0 cc ADVANCE 235 SET C\ ADVANCE 281 Dec. 24, 1968 o. w. ANDERSON ETAL 3,418,638

INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21, 1966 116 Sheets-Sheet 12 I 5?? 1 18 3; ACCUM 3 EXTENT 2 6 1 4/ l 1329 (L 3) so SHIFTER 306 5 I |l| n! I Mn r17 I1'1'1'SHIFTER8Z0,L1,L2"m g I 1H1]! 1 ll)! 2 11 W" [50?- l 509 5 1| L4 FTTT'/"L A l I I AC; /smmn Z0,L2,L4,LS I

1 (m sum I h H] o comm OECODER I w\mwmmmm. smmn L8, L16 1 I I m l I I o I 322 J/ a' lill32 my 5 m {0352: 6 f

L4 d L2 H L0 I T T l u Dec. 24, 1968 o. w. ANDERSON ETAL 3,418,638

INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21. 1966 116 Sheets-Sheet 15 FIG. 13 OVERLAP IS A SLDI\,SLDL,SRDA,SRDL NR, IS A STORAGE-STORAGE TYPE N, NH, OR OR D INSTRUCTION (NOT TRANSLATE (USING FXB 209 OR FXB 2T0) & TEST OR EDIT S NARIII IN PROCESS IN PROCESS HAS THE FXOS 2OI BEEN RELEASED FOR THIS OPERATION Y HAS THE FIIOS 2DI BEEN RELEASED FRON THE LAST OP OF THE INSTRUCTION SET FX SET VFL DIILP NODE DVLP NODE N IS A VFLEU PROCESS ISA FIXED POINT PROCESS N IN OPERATION IN OPERATION IS THE NEXT OP TO IS THE NEXT OF TO BE ISSUED BE ISSUED A STORAGE- Y Y AN RR OR RX TYPE INDT IO, STORAGE TYPE (NOT TRANSLATE ISK, OVB,OV0,0R STORE) A TEST OR EDIT A NARKI OR A SHIFT ISSUE NEXT OP FRON FXOS ZDI END Dec. 24, 1968 D. W. ANDERSON ETAL INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21,

DIVIDE I I c Y CLE 1 sELEcT om GPR PATH UUTCATE ODD CPR 202 TO A BUS 225 SET ICTR 348 T0 34 TEST SIGN OF DEND C PR 202 IN EVEN LEFT INPUT 0F GATE A BUS 225 CCNPLENENT INTO C PA 216 SET CARRY ouT 9 GATE EVEN CPR 202 T0 LEFT 116 Sheets-Sheet 14 FIG. 1 4

TRUE INTO LEFT CATE A BUS 225 INPUT OF C P A 21 6 CYCLE 2 IS INSTRUCTION RX FORMAT SELECT WITH DIVISOR OPERAND INPUT cm 216 GATE 0 PA 21 e OUTP uT mm 345 To CPA RIGHT ABC 2 21 T 350 .L N Y Y IS DEND N m 353 GATE A BUS 225 GATE A BUS 225 I CONPLENENT TRUE mm LEFT EIEE S Q 25 INTO LEFT INPUT INPUT 0F CPA USE AT m m 0F CPA 21s 21? 0F CYCLE 3 356 INSERT HOT ONE mo CPA 216 (no. I5)

Dec. 24, 1968 n. w. ANDERSON ETAL 3,418,638

INSTRUCTION XROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21. 1966 116 Sheets-Sheet 15 (H944) FIG. 15 DIVIDE 2 CYCLE 3 v GATE CPA 246 OUTPUT mm LEFT HALF OF ACCR 2n DECRENENT 10m 348 IS INSTRUCTION RX FORMAT GATE DVR GPR 202 TO A BUS 225 Y WAS FXB FULL N I OH CYCLE 2 UNBLOCK BUFFER STEP ms 204 W EJ JG 345 msmQ GATE LEFT HALF OF ACCR 2LT INTO RIGHT INPUT cm 216 sum mm HALF or ACCR 2n LEFT CYCLE EW'NE ouc-mnousn SHTFTER 218 Y ACCR 241 Y SIGN NEG N Y (FIG. 16) 363 ICTR 348'33 /3 Y N Y I um CYCLE Wm ABORT DVR NEG I saw Run DECRENENT I SIGNAL FXB NOT ausv T I GATE DVR COMP GATE DVR INSERT HOT ONE TRUE RESET ALL CONTROLS SEND RUA DECNENENT H616) (HS. 16 (FIG. 17)

Dec. 24, 1968 o. w. ANDERSON ETAL 3,418,633

INSTRUCTION PROCESSING UNIT FDR PROGRAM BRANCHES Filfid Sept. 21. 1965 116 $hB6tSShGGt 18 FIG. 16

DIVTDE 3 [an connmom ovERrLoI] W ENTER ouonnn sn'o ENTER uuonun an -1 u RTGHT END or ACCR 21? AT mm END or ACOR 211 L I l ozcazum 1cm 34s 1 cue CPA 216 T0 LEFT accn 211 can SHIFTER 21a RIGHT ACCR 211 (Flam m GATE AGGR 217 RIGHT HALF TO T/G SIDE 231 SET SHIFTER 218 TO SHIFT CPA 216 OUTPUT RIGHT 32 T0 BUS 533 SIGNS OPPOSTTE/ SET T/C SIDE 231 TO CONP SET T/G SIDE INSERT HOT ONE 251 TO TRUE Y I NEXT CYCLE F DEGREHENT IGTR 548 GATE CPA 216 OUTPUT TO GPR 202 (OUOTIENT) GATE BUS 553 TO RIGHT HALF OF AOGR 2T? Dec. 24, 1968 n. w. ANDERSON ETAL 3,418,633

INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21, 1966 116 Sheets-Sheet 17 FIG. 17 DIVIDE 4 GATE DVR TO A BUS 225 GATE RIGHT HALF OF ACCR 21? T0 CPA 216 RIGHT INPUT 0N BUS 376 A 225 363 cm A aus 225 TRUE INSERT nor ONE "m CYCLE 11 em CPA 216 T0 mam um ACCR 2n GATE RIGHT HALF ACCR 217 T0 TIC SIDE 231 UN BUS 3T6 SEND DECREHENT RUA wuuwm 350 SET TIC SIDE 231 COMP INSERT HOT ME SET TIC SIDE TRUE um CYCLE n IS msmucnon v smm FXB nx roam nor ausv 352 I I cm CPA 216 OUTPUT T0 REMINDER GPR RESET ALL CONTROLS END Dec. 24, 1968 D. W. ANDERSON ETAL INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21. 1966 sum MULTIPLY 116 Sheets-Shut 18 1 FIG. I8

CYCLE I SET ICTR 548 -8 SET LEFT IIALF ACCR 217-0 SELECT PAIR OF G SINK REGS IS HULT RX FORMAT GATE 00D SELECTED CPR (CARD) TO B BUS 226 GATE IRER GPR TO A GATE ODD SELECTED CPR (CARD) TD B BUS 226 GATE EVER SELECTED CPR (CARD) TO B BUS 226 BUS 225 DECREIEIIT IIUII L I 2RD CYCLE Y 587 I Y IS SEL FXB R GATE FXBIIRERITD IIRER) FULL BUSSES 554,335

GATE FXB ([RERI T0 BUSSES 344,345 AIID T0 CPA 216 SET DATA AVAILABLE I LSIGIIAL FXB nor ausfl ZIID CYCLE Y I IIEXT CYCLE IS SEL FXB IIRER) FULL I SET DATA AVAILABLE I [STEP FXDS 201% GATE CPA 216 IIRER) T0 RIGHT HALF ACCR 217 SET SHIFTER 216 T0 R4 T0 SHIFT IRER NEXT CYCLE TURII DII LIIIIT 4 um CYCLE TURN on mm 2 N IS THERE A moms v smmc or 9 0'5 0R 1's sas Q) (RG19) DEG 1968 o. w. ANDERSON ETAL 3,413,633

INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 2].. 1966 11$ Sheets-Sheet 19 0 MULTIPLY 2 FIG. 19

IRER DECODING /FOR BUS 384 NEXT CYCLE RIGHT IRER BITS TURN ON +4 XXHH 0R XXHU NEXT CYCLE TURN ON-T Y RIGHT IRER BITS N 004 R IRER DEEODING /FOR BUS 382 NEXT CYCLE RIGHT IRER BITS TURN ON +4 TUIXX 0R HOXX NEXT CYCLE TURN ON 4 NEXT CYCLE (FIG. 20)

Dec. 24, 1968 o. w. ANDERSON ETAL 3,418,633

INSTRUCTION PROCESSING UNIT FOR PROGRAM BRANCHES Filed Sept. 21, 1966 116 Sheets-Sheet 20 FIG. 20 (FIG. 19)? MULTIPLY 3 n CYCLE FOLLOWING v msr OECODE CYCLE GATE CPA 2I6 IIITO LEFT IIALF AOOR ZI'I SET GATES FOR SIIIFTER ZIB IIITO RIOIIT IIALF ACOR ZIT SET GATES FOR SI'IIFTER 2M TO RIGHT HALF ASCII 24'! TUIIII OII LIIIIT TGRS AIIO (CAIIOI GATES 235 A5 IIIOIOATEO BY PREVIOUS CYCLE OECREIIEIIT ICTR 348 (FIG 21) um -2 on (FIG. 21

GATE LEFT IIALF ACOR ZIT SHIFTEO R4 IIITO RIGIIT IIIPUT GSA 2I4 AIIO RIGIIT HALF ACCR ZIT SIIIFTEO R4 BACK IIITO ACOR 2|? 

1. IN A DATA PROCESSING SYSTEM OF THE CLASS DESCRIBED HAVING A MAIN DATA STORAGE UNIT, AN INSTRUCTION UNIT AND AN EXECUTION UNIT, SAID INSTRUCTION UNIT INCLUDING A PLURALITY OF DEVICES EACH SETTABLE IN TURN FROM SAID MAIN DATA STORAGE UNIT IN ACCORDANCE WITH THE DATA OF A CORRESPONDING INSTRUCTION OF A DATA PROCESSING PROGRAM IN SAID STORAGE UNIT TO EACH PROVIDE A BUFFER FOR AN INSTRUCTION TO BE DECODED AND A DECODING UNIT TO INSPECT AND DECODE EACH BUFFERED INSTRUCTION IN TURN, TO TRANSMIT SAID INSTRUCTION TO SAID EXECUTION UNIT FOR SUBSEQUENT EXECUTION, AND TO CONTROL SAID MAIN STORAGE UNIT TO CAUSE TRANSMISSION OF REQUIRED OPERANDS TO SAID EXECUTION UNIT, THE IMPROVEMENT COMPRISING: MEANS IN SAID INSTRUCTION UNIT TO INDICATE THAT AN INSTRUCTION BEING DECODED MAY REQUIRE A DEPARTURE FROM THE NORMAL SEQUENCE OF INSTRUCTIONS; MEANS RESPONSIVE TO SAID INDICATING MEANS TO THEREUPON DETERMINE THE IDENTIFICATION WITHIN SAID STORAGE UNIT OF THE FIRST INSTRUCTION OF THE SEQUENCE TO BE DECODED AND PROCESSED IF A DEPARTURE FROM THE NORMAL SEQUENCE IS REQUIRED; MEANS CONNECTED TO SAID DECODING UNIT TO FURTHER DECODE SAID INSTRUCTION BEING DECODED TO SELECT THE CONDITIONS TO BE TESTED TO DETERMINE IF THE FURTHER INSTRUCTIONS TO BE PROCESSED ARE IN THE NORMAL SEQUENCE OR THE DEPARTURE SEQUENCE; INDICATORS OF SAID CONDITIONS SETTABLE BY SAID EXECUTION UNIT AS A RESULT OF THE EXECUTION OF A PREVIOUSLY DECODED INSTRUCTION; AT LEAST ONE ADDITIONAL DEVICE SETTABLE IN ACCORDANCE WITH THE DATA OF ANY FETCHED INSTRUCTION WORD; MEANS TO INTERRUPT THE PROCESSING OF INSTRUCTIONS OF THE NORMAL SEQUENCE; AND CONTROL MEANS RESPONSIVE TO SAID DECODING MEANS AND TO SAID CONDITION INDICATING MEANS TO ACTIVATE SAID INTERRUPT MEANS AND TO THEN INSTRUCT THE MAIN DATA STORAGE UNIT TO TRANSFER THE IDENTIFIED FIRST INSTRUCTION OF SAID DEPARTURE SEQUENCE TO SAID ADDITIONAL SETTABLE DEVICE FOR IMMEDIATE USE IF THE DEPARTURE SEQUENCE IS TO BE DECODED. 